from _typeshed import Incomplete
from ducktape.json_serializable import DucktapeJSONEncoder as DucktapeJSONEncoder
from ducktape.tests.status import (
    FAIL as FAIL,
)
from ducktape.tests.status import (
    FLAKY as FLAKY,
)
from ducktape.tests.status import (
    IGNORE as IGNORE,
)
from ducktape.tests.status import (
    OFAIL as OFAIL,
)
from ducktape.tests.status import (
    OPASS as OPASS,
)
from ducktape.tests.status import (
    PASS as PASS,
)
from ducktape.utils.terminal_size import get_terminal_size as get_terminal_size
from ducktape.utils.util import ducktape_version as ducktape_version

DEFAULT_SEPARATOR_WIDTH: int

def format_time(t): ...

class SingleResultReporter:
    result: Incomplete
    width: Incomplete
    def __init__(self, result) -> None: ...
    def result_string(self): ...
    def report_string(self): ...

class SingleResultFileReporter(SingleResultReporter):
    width: Incomplete
    def report(self) -> None: ...

class SummaryReporter:
    results: Incomplete
    width: Incomplete
    def __init__(self, results) -> None: ...
    def report(self) -> None: ...

class SimpleSummaryReporter(SummaryReporter):
    def footer_string(self): ...
    def report_string(self): ...

class SimpleFileSummaryReporter(SimpleSummaryReporter):
    width: Incomplete
    def report(self) -> None: ...

class SimpleStdoutSummaryReporter(SimpleSummaryReporter):
    def report(self) -> None: ...

class JSONReporter:
    results: Incomplete
    def __init__(self, results) -> None: ...
    def report(self) -> None: ...

class JUnitReporter:
    results: Incomplete
    def __init__(self, results) -> None: ...
    def report(self) -> None: ...

class HTMLSummaryReporter(SummaryReporter):
    def format_test_name(self, result): ...
    def format_result(self, result): ...
    def test_results_dir(self, result): ...
    def format_report(self) -> None: ...
    def report(self) -> None: ...

class FailedTestSymbolReporter(SummaryReporter):
    working_dir: Incomplete
    separator: Incomplete
    def __init__(self, results) -> None: ...
    def to_symbol(self, result): ...
    def dump_test_suite(self, lines) -> None: ...
    def print_test_symbols_string(self, lines) -> None: ...
    def report(self) -> None: ...
